package org.hcyspartnoc.luoxin.pojo.po.service;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@Accessors(chain = true)
@TableName("service_counselor_orders")
public class ServiceCounselorOrderPo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @TableField("user_id")
    private Integer userId;
    @TableField("counselor_id")
    private String counselorId;
    @TableField("service_type")
    private Integer serviceType; // 假设这里的类型足够表示chat, audio, video
    @TableField("service_duration")
    private Integer serviceDuration;
    @TableField("service_price")
    private Double servicePrice; // 使用Double而不是DECIMAL，因为Java中没有直接的DECIMAL类型
    @TableField("scheduled_time")
    private LocalDateTime scheduledTime;
    @TableField("start_time")
    private LocalDateTime startTime;
    @TableField("end_time")
    private LocalDateTime endTime;
    @TableField("status")
    private Integer status; // 1: scheduled, 2: in_progress, 3: completed, 4: cancelled
    @TableField("created_at")
    private LocalDateTime createdAt; // MyBatis Plus通常会在插入时自动处理这个字段，但也可以手动设置
    @TableField("updated_at")
    private LocalDateTime updatedAt; // MyBatis Plus支持在更新时自动设置这个字段
    @TableField("session_id")
    private Integer sessionId;
    @TableField("pay_type")
    private Integer payType;
    @TableField("transaction_id")
    private String transactionId;
    @TableField("transaction_time")
    private LocalDateTime transactionTime;
    @TableField(exist = false)
    private Boolean isExists;
}